/*******************************************************************************

  Paying Outsourced Labor: Direct Evidence from Linked Temp Agency-Worker-Client Data

  By Andres Drenik, Simon Jäger, Pascuel Plotkin and Benjamin Schoefer
  January 7th, 2021

  DESCRIPTION: Generates a dataset of appended EPH samples from 2012 to 2018.
  Note: We can only estimate from 2012 - 2018 because of a change in the industry
		categorization before 2012

*******************************************************************************/

/********************************************************************************
***** Preliminaries
********************************************************************************/
set more off
cap log close
local curr_date = c(current_date)
log using "${logs}/03_Eph_Cont_2012_2018_Creation`curr_date'", replace

************************************************************************
**** Load Datasets
***********************************************************************

cd "$EPH"

forvalues y = 16/18{

    forvalues t = 1/4{

        if "`t'`y'" != "116" {

            import delimited "usu_individual_t`t'`y'.txt", delimiter(";") clear

            gen CODUSU = substr(codusu, -8,.)
            drop codusu

            gen aux = date(ch05, "DMY")
            drop ch05
            rename aux ch05

            rename pp04b_cod pp04b_caes

            tostring pp04b_caes, replace

            save "eph_`t'`y'.dta", replace

        }
    }
}

clear

forvalues y = 12/15{

    local y_alt = "`y'"
    

    forvalues t = 1/4{

        if "`t'`y_alt'" != "315" & "`t'`y_alt'" != "415"{

            append using "t`t'`y_alt'_dta/Individual_t`t'`y_alt'.dta"
        }


    }
}

forvalues y = 16/18{

    forvalues t = 1/4{

        if "`t'`y'" != "116" {

            append using "eph_`t'`y'.dta", force
        }
    }
}

* Standardize variables

* Survey
rename ano4 ano
rename trimestre onda
rename h15 realizada
rename CODUSU codusu

* Demographics
recode ch03 (1 = 1 "Jefe/a") (2 = 2 "Conyuge/Pareja") (3 = 3 "Hijo/Hijastro") (4 = 4 "Yerno/Nuera") (5 = 5 "Nieto/a") (6 7 = 6 "Madre/Padre o Suegro/a") (8 = 8 "Hermano/a") (9 = 9 "Otros familiares") (10 = 10 "No familiares")  (12 = -1 "Ns./Nr."), gen (parentesco) label(newparentesco)
label var parentesco "Relacion de parentesco"

rename ch07 estado_civil
label var estado_civil "Estado Civil"

recode ch04 (1 = 1 "Varon") (2 = 0 "Mujer"), gen(hombre) label(hombre)
recode ch06 (-1 = -1 "Menos de 1 aׯ") (98 = 98 "98 y mas") (99 = -2 "Ns./Nr.") , gen(edad) label(edad)
rename nivel_ed edulevel

recode ch15 (1 = 1 "En esta localidad") (2 = 2 "En otra localidad de esta provincia") (3 = 3 "En otra provincia") (4  5 = 4 "En otro pais") (0 9 = 9 "Ns./Nr."), gen(lugarnac) label(lugarnac)
label var lugarnac "Lugar de Nacimiento"

* Labor Market Status
recode estado (0 = 0 "Entrevista individual no realizada") (1 = 1 "Ocupado") (2 = 2 "Desocupado") (3 = 3 "Inactivo") (4 = 4 "Menor de 10 aׯs"), gen (estado_actividad) label(estado_actividad)

gen plan_empleo = (pp07e==1)
label var plan_empleo "Es un ocupado con plan de empleo"

* Characteristics of Employed Workers
recode pp3e_tot (999 = -1 "Ns./Nr."), gen(horas_ocup_prin) label(horas_ocup_prin)
label var horas_ocup_prin "Horas trabajadas en la ocupacion principal en la semana de referencia"
recode pp3f_tot (999 = -1 "Ns./Nr."), gen(horas_otras_ocup) label(horas_otras_ocup)
label var horas_otras_ocup "Horas trabajadas en otras ocupaciones en la semana de referencia"

recode pp07a (1 = 1 "Menos de 1 mes") (2 = 2 "1 a 3 meses") (3 = 3 "Mas de 3 a 6 meses") (4 = 4 "Mas de 6 a 12 meses") (5 = 5 " Mas de 1 a 5 anios") (6 = 6 "Mas de 5 anios") (9 = 9 "Ns./Nr."), gen(tenure_ocup_prin) label(tenure_ocup_prin)
label var tenure_ocup_prin "Tenure en ocupacion principal"

recode pp03c (1 = 1 "...un solo empleo/ocupacion/actividad?") (2 = 2 "...mas de un empleo/ocupacion/actividad?") (3 = 0) (9 = 9 "Ns./Nr."), gen(numero_ocupaciones) label(numero_ocupaciones)
label var numero_ocupaciones "Numero de ocupaciones que el ocupado tuvo en la semana de referencia"

recode pp04a (1 = 1 "Publico") (2 = 2 "Privado") (3 = 3 "Otro") (9 = 9 "Ns./Nr."), gen(tipo_establecimiento_ocup) label(tipo_establecimiento_ocup)
label var tipo_establecimiento_ocup "Tipo de establecimiento del ocupado (ocup. prin.)"

gen serviciodomestico = 1 if pp04b1 == 1
label var serviciodomestico "Individuo prestar servicio domestico en hogares particulares (ocup. prin.)"

recode pp04c (1 = 1 "1 persona") (2/5 = 2 "de 2 a 5 personas") (6 7 = 3 "de 6 a 25 personas") (8 9 = 4 "de 26 a 100 personas") (10 11 = 5 "de 101 a 500 personas") (12 = 6 "mas de 500 personas") (99 = 9 "Ns./Nr."), gen (tamano_establecimiento) label(tamano_establecimiento)
label var tamano_establecimiento "Cuantas personas trabajan en el establecimiento (ocup. prin.)"

rename pp04d_cod cod_ocupacion_prin_ocup

gen aportesjubilatorios = (pp07h == 1 | pp07i == 1)
label var aportesjubilatorios "El trabajador asalariado recibe descuento jubilatorio o aporta a un sistema jubilatorio (ocup. prin.)"

gen aux1 = substr(pp04b_cod,1,2)
destring(aux1), gen(aux2)
replace aux2 = 9999 if pp04b_cod == "9999" | pp04b_cod == "9999 "
recode aux2 (9999 = -1 "Ns./Nr."), gen(industria_ocup_prin_cod) label(industria_ocup_prin_cod)
drop aux*

label var industria_ocup_prin_cod "Industria Ocupados - CIIU Rev 3 a 2 digitos"

replace pp04b_caes = "10" if pp04b_caes == "C   "
replace pp04b_caes = "" if pp04b_caes == "Z   "
gen aux1 = substr(pp04b_caes,1,2)
destring(aux1), gen(aux2)
replace aux2 = 9999 if pp04b_caes == "9999" | pp04b_caes == "9999 "
recode aux2 (9999 = -1 "Ns./Nr."), gen(industria_ocup_prin_caes) label(industria_ocup_prin_caes)
drop aux*

label var industria_ocup_prin_caes "Industria Ocupados - CIIU Rev 3 a 2 digitos"

* Characteristics of Unemployed Workers
gen aux1 = substr(pp11b_cod,1,2)
destring(aux1), gen(aux2)
replace aux2 = 9999 if pp11b_cod == "9999" | pp11b_cod == "9999 "
recode aux2 (9999 = -1 "Ns./Nr."), gen(desoc_industria_prin_cod) label(desoc_industria_prin_cod)
drop aux*
label var desoc_industria_prin_cod "Desocupados: Industria de la ultima ocupaciontab - CIIU Rev 3 a 2 digitos"

rename pp11d_cod cod_ocupacion_prin_desocup_cod

replace pp11b_caes = "" if pp11b_caes == "V   "
replace pp11b_caes = "" if pp11b_caes == "Z   "
gen aux1 = substr(pp11b_caes,1,2)
destring(aux1), gen(aux2)
replace aux2 = 9999 if pp11b_caes == "9999" | pp11b_caes == "9999 "
recode aux2 (9999 = -1 "Ns./Nr."), gen(desoc_industria_prin_caes) label(desoc_industria_prin_caes)
drop aux*
label var desoc_industria_prin_caes "Desocupados: Industria de la ultima ocupaciontab - CIIU Rev 3 a 2 digitos"

recode pp11a (1 = 1 "Publico") (2 = 2 "Privado") (3 = 3 "Otro") (9 = 9 "Ns./Nr."), gen(desocup_tipo_establecimiento) label(desocup_tipo_establecimiento)
label var desocup_tipo_establecimiento "Desocupados: tipo de establecimiento en la ultima ocupacion"

recode pp10a (1 = 1 "Menos de 1 mes") (2 = 2 "1 a 3 meses") (3 = 3 "Mas de 3 a 6 meses") (4 = 4 "Mas de 6 a 12 meses") (5 = 5 " Mas de 1 anio") (9 = 9 "Ns./Nr."), gen(desoc_durationunemployed) label(desoc_durationunemployed)
label var desoc_durationunemployed "Periodo de Desempleo"

gen desoc_aportesjubilatorios = (pp11n == 1) if pp11n == 1 | pp11n == 2 | pp11n == 9
label var desoc_aportesjubilatorios "Desocupados: en la ultima ocupacion le hacian descuento jubilatorio"

gen desoc_plan_empleo = (pp11m==1) if pp11m == 1 | pp11m == 2 | pp11m == 3 | pp11m == 9
label var desoc_plan_empleo "Desocupados: la ultima ocupacion era un plan de empleo"

gen desoc_tuvoocupant = pp10d
label var desoc_tuvoocupant "Desocupados: el desocupado tuvo empleo anterior"

* Income of Employers (independientes, patron, empleado)
rename itf ingreso_tot_fam
rename ipcf ingreso_percapita_fam
rename p47t ingreso_tot_indiv
generate ingreso_horario_ocup_prin = p21/(pp3e_tot*4)
replace ingreso_horario_ocup_prin = . if pp3e_tot == 999
label var ingreso_horario_ocup_prin "Ingreso horario de la ocupacion principal"
rename p21 ingreso_ocup_prin /* gen p21 = pp06c + pp06d + pp08d1 + pp08f1 +  pp08f2 */

* Create a variable indicating industry for employed/unemployed
* 1- Agricultura, caza, silvicultura y pesca
* 2- Explotacion de minas y canteras
* 3- Industrias manufactureras
* 4- Electricidad, gas y agua
* 5- Construccion
* 6- Comercio al por mayor y al por menor, restaurantes y hoteles
* 7- Transporte, almacenaje y comunicaciones
* 8- Establecimientos financieros, seguros, bienes inmuebles y servicios
*    prestados a las empresas
* 9- Servicios comunales, sociales y personales
* 0- Actividades no bien especificadas y desconocidas

*The industry catergorization in EPH is: Actividades Económicas para Encuestas Sociodemográficas del Mercosur – CAES - MERCOSUR 1.0
gen industry = .

* Employed
replace industry = 1 if industry == . & inrange(industria_ocup_prin_caes,1,3) & industria_ocup_prin_caes != . & ano > 2011

replace industry = 2 if industry == . & inrange(industria_ocup_prin_caes,5,9) & industria_ocup_prin_caes != . & ano > 2011

replace industry = 3 if industry == . & inrange(industria_ocup_prin_caes,10,33) & industria_ocup_prin_caes != . & ano > 2011
replace industry = 3 if industry == . & inrange(industria_ocup_prin_caes,58,59) & industria_ocup_prin_caes != . & ano > 2011

replace industry = 4 if industry == . & inrange(industria_ocup_prin_caes,35,39) & industria_ocup_prin_caes != . & ano > 2011

replace industry = 5 if industry == . & inrange(industria_ocup_prin_caes,40,40) & industria_ocup_prin_caes != . & ano > 2011

replace industry = 6 if industry == . & inrange(industria_ocup_prin_caes,45,48) & industria_ocup_prin_caes != . & ano > 2011
replace industry = 6 if industry == . & inrange(industria_ocup_prin_caes,55,56) & industria_ocup_prin_caes != . & ano > 2011


replace industry = 7 if industry == . & inrange(industria_ocup_prin_caes,49,53) & industria_ocup_prin_caes != . & ano > 2011
replace industry = 7 if industry == . & inrange(industria_ocup_prin_caes,61,61) & industria_ocup_prin_caes != . & ano > 2011


replace industry = 8 if industry == . & inrange(industria_ocup_prin_caes,62,63) & industria_ocup_prin_caes != . & ano > 2011
replace industry = 8 if industry == . & inrange(industria_ocup_prin_caes,64,82) & industria_ocup_prin_caes != . & ano > 2011


replace industry = 9 if industry == . & inrange(industria_ocup_prin_caes,60,60) & industria_ocup_prin_caes != . & ano > 2011
replace industry = 9 if industry == . & inrange(industria_ocup_prin_caes,83,99) & industria_ocup_prin_caes != . & ano > 2011



* Unemployed
replace industry = 1 if industry == . & inrange(desoc_industria_prin_caes,1,3) & desoc_industria_prin_caes != . & ano > 2011

replace industry = 2 if industry == . & inrange(desoc_industria_prin_caes,5,9) & desoc_industria_prin_caes != . & ano > 2011

replace industry = 3 if industry == . & inrange(desoc_industria_prin_caes,10,33) & desoc_industria_prin_caes != . & ano > 2011
replace industry = 3 if industry == . & inrange(desoc_industria_prin_caes,58,59) & desoc_industria_prin_caes != . & ano > 2011

replace industry = 4 if industry == . & inrange(desoc_industria_prin_caes,35,39) & desoc_industria_prin_caes != . & ano > 2011

replace industry = 5 if industry == . & inrange(desoc_industria_prin_caes,40,40) & desoc_industria_prin_caes != . & ano > 2011

replace industry = 6 if industry == . & inrange(desoc_industria_prin_caes,45,48) & desoc_industria_prin_caes != . & ano > 2011
replace industry = 6 if industry == . & inrange(desoc_industria_prin_caes,55,56) & desoc_industria_prin_caes != . & ano > 2011

replace industry = 7 if industry == . & inrange(desoc_industria_prin_caes,49,53) & desoc_industria_prin_caes != . & ano > 2011
replace industry = 7 if industry == . & inrange(desoc_industria_prin_caes,61,61) & desoc_industria_prin_caes != . & ano > 2011

replace industry = 8 if industry == . & inrange(desoc_industria_prin_caes,62,63) & desoc_industria_prin_caes != . & ano > 2011
replace industry = 8 if industry == . & inrange(desoc_industria_prin_caes,64,82) & desoc_industria_prin_caes != . & ano > 2011

replace industry = 9 if industry == . & inrange(desoc_industria_prin_caes,60,60) & desoc_industria_prin_caes != . & ano > 2011
replace industry = 9 if industry == . & inrange(desoc_industria_prin_caes,83,99) & desoc_industria_prin_caes != . & ano > 2011


replace industry = -1 if industry == . & inrange(industria_ocup_prin_cod,0,0) & industria_ocup_prin_cod != .
replace industry = -1 if industry == . & industria_ocup_prin_cod == -1
replace industry = -1 if industry == . & inrange(desoc_industria_prin_cod,0,0) & desoc_industria_prin_cod != .
replace industry = -1 if industry == . & desoc_industria_prin_cod == .

compress
save "eph_cont_2012_2018.dta", replace

log close
